#pragma once

#include "Entities.h"

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

typedef struct tm Time;

//! Products
unsigned int AddProduct(char* Name, unsigned int Quantity);
unsigned int* SearchProductByName(char* Name);
unsigned int* GetAllProducts();

//! Regions
unsigned int AddRegion(char* Name);
unsigned int* SearchRegionsByName(char* Name);
unsigned int* GetAllRegions();

//! Customer
unsigned int AddCustomer(int RegionID, char* Name, char* ContactInformation);
unsigned int* SearchCustomerByName(char* Name);

//! Supplier
unsigned int AddSupply(unsigned int ProductID, unsigned int Amount);
unsigned int AddSupplier(char* Name, char* ContactInformation);
unsigned int* SearchSupplierByName(char* Name);

//! Deliveries
unsigned int AddDelivery(unsigned int ProductID, unsigned int Amount);

unsigned int AddDeliveryBatch(int CustomerID, Delivery* Array, struct Time DueDate, int Quantities);
unsigned int AddSupplyBatch(int SupplierID, Supply* Array, int Quantities);
unsigned int* GetExpiredDeliveries(Time DueDate);
